using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ShootThemUp.Sources.GameElements.Weapons;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace ShootThemUp.Sources.GameElements.Ships.Ennemies.Fruits
{
    /// <summary>
    /// This class is an angry Orange.
    /// </summary>
    public class Orange : Fruit
    {
        #region Orange Texture Constant Fields
        //25*228
        /// <summary>
        /// The X position of the Orange hitbox (in px).
        /// </summary>
        private const int HITBOX_POSITION_X = 25;
        /// <summary>
        /// The Y position of the Orange hitbox (in px).
        /// </summary>
        private const int HITBOX_POSITION_Y = 34;
        /// <summary>
        /// The width of the Orange hitbox (in px).
        /// </summary>
        private const int HITBOX_WIDTH = 54;
        /// <summary>
        /// The height of the Orange hitbox (in px).
        /// </summary>
        private const int HITBOX_HEIGHT = 53;
        /// <summary>
        /// The X position of the Orange texture in the spritesheet (in px).
        /// </summary>
        private const int SPRITESHEET_POSITION_X = 0;
        /// <summary>
        /// The Y position of the Orange texture in the spritesheet (in px).
        /// </summary>
        private const int SPRITESHEET_POSITION_Y = 194;
        /// <summary>
        /// The width of the Orange texture in the spritesheet (in px).
        /// </summary>
        private const int SPRITESHEET_WIDTH = 79;
        /// <summary>
        /// The height of the Orange texture in the spritesheet (in px).
        /// </summary>
        private const int SPRITESHEET_HEIGHT = 87;

        #endregion

        #region Orange Model Constant Fields

        /// <summary>
        /// The score value of a Orange, ie the score earned by the player who destroy a Orange.
        /// </summary>
        private const int SCORE_VALUE = 1000;
        /// <summary>
        /// The life of a Orange.
        /// </summary>
        private const int LIFE = 2000;

        #endregion

        #region Constructor

        /// <summary>
        /// Initializes a new instance of the <see cref="Orange"/> class.
        /// </summary>
        public Orange()
            : base(Orange.LIFE,
            null, 
            SCORE_VALUE,
            new Vector2(-Orange.SPRITESHEET_WIDTH, 0),
            Vector2.Zero,
            new Rectangle(Orange.SPRITESHEET_POSITION_X, Orange.SPRITESHEET_POSITION_Y, Orange.SPRITESHEET_WIDTH, Orange.SPRITESHEET_HEIGHT),
            new Rectangle(Orange.HITBOX_POSITION_X, Orange.HITBOX_POSITION_Y, Orange.HITBOX_WIDTH, Orange.HITBOX_HEIGHT)) { }
        
            

        #endregion

        #region Methods

        public override void Update(GameTime gameTime)
        {
            base.Update(gameTime);
        }

        public override void Draw(SpriteBatch spriteBatch)
        {
            base.Draw(spriteBatch);
        }

        public override bool CanShoot()
        {
            return false;
        }


        #endregion
    }
}
